﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Data;

namespace prjCompras
{
    public partial class frmCadAssociaFornecedorMaterial : FormCadastroPadrao.FormCadastro
    {
        public frmCadAssociaFornecedorMaterial()
        {
            InitializeComponent();
            loadDados();

            this.tabela = ConstTabelas.FORNECEDORMATERIAL;
        }

        private void loadDados()
        {
            Dados codigoforn = new Dados(ConstTabelas.FORNECEDORMATERIAL_PK, mskdtxtbxCNPJFornecedor.Name, false, false, Dados.tipo.texto, "CNPJ Fornecedor");
            Dados codmat = new Dados(ConstTabelas.FORNECEDORMATERIAL_PK2, txtbxCodigoMaterial.Name, false, false, Dados.tipo.texto, "Código Material");

            this.campos = new List<Dados>();

            this.campos.Add(codigoforn);
            this.campos.Add(codmat);
        }

        private void txtbxCodigoFornecedor_Leave(object sender, EventArgs e)
        {
            txtbxNomeFornecedor.Text = "";
            if (!mskdtxtbxCNPJFornecedor.Text.Equals(""))
            {
                DataTable dt = Conexao.getInstance.executeQuery(SqlCrud.getInstance.selectCampo(ConstTabelas.FORNECEDOR, ConstTabelas.FORNECEDOR_PK, "Nome", mskdtxtbxCNPJFornecedor.Text));
                if (dt.Rows.Count > 0)
                {
                    txtbxNomeFornecedor.Text = dt.Rows[0][0].ToString();
                }
            }
        }

        private void txtbxCodigoMaterial_Leave(object sender, EventArgs e)
        {
            txtbxNomeMaterial.Text = "";
            if (!txtbxCodigoMaterial.Text.Equals(""))
            {
                DataTable dt = Conexao.getInstance.executeQuery(SqlCrud.getInstance.selectCampo(ConstTabelas.MATERIAL, ConstTabelas.MATERIAL_PK, "Nome", txtbxCodigoMaterial.Text));
                if (dt.Rows.Count > 0)
                {
                    txtbxNomeMaterial.Text = dt.Rows[0][0].ToString();
                }
                else
                {
                    MessageBox.Show("Material informado não existe!", "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }

        private void frmCadAssociaFornecedorMaterial_Load(object sender, EventArgs e)
        {
            txtbxCodigoFornecedor_Leave(sender, e);
            txtbxCodigoMaterial_Leave(sender, e);            
        }

        public override bool validacaoAdicional()
        {
            txtbxCodigoMaterial_Leave(null, null);
            if (txtbxNomeMaterial.Text == "")
            {
                return false;
            }
            if (this.insert)
            {
                string sql = SqlCrud.getInstance.selectAll(this.tabela, "CNPJFornecedor = " + mskdtxtbxCNPJFornecedor.Text +
                    " and CodigoMaterial = " + txtbxCodigoMaterial.Text);
                DataTable dt = Conexao.getInstance.executeQuery(sql);
                if (dt.Rows.Count > 0)
                {
                    MessageBox.Show("Material já associado ao fornecedor!", "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }
            }
            return true;
        }

        private void btnPesquisarGrupoFornecedor_Click(object sender, EventArgs e)
        {
            frmPesquisaPadrao f = new frmPesquisaPadrao();
            f.setTituloForm("Pesquisar Material");
            f.setTabela("Material");
            f.addCampo("Codigo");
            f.addTitulo("Código");
            f.addCampo("Nome");
            f.addTitulo("Nome");
            f.carregaGrid();
            f.carregaCombo();
            f.ShowDialog();
            if (!f.cancelar)
            {
                txtbxCodigoMaterial.Text = f.pk;
                txtbxCodigoMaterial_Leave(sender, e);
            }
        }
    }
}
